package com.wtwd.campus.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wtwd.campus.constant.UploadAppFileTypeEnum;
import com.wtwd.campus.entity.DeviceAppPublicFile;
import com.wtwd.campus.entity.MqUplocadAppFile;
import com.wtwd.campus.model.dto.PackageNameAndTypeDto;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author mjy
 * @since 2022-12-12
 */
public interface DeviceAppPublicFileService extends IService<DeviceAppPublicFile> {


    /**
     * 根据包名以及文件类型批量查询设备共有文件
     */

    List<DeviceAppPublicFile> queryDeviceAppPublicFileByPackageNameAndTypeDto(List<PackageNameAndTypeDto> packageNameAndTypeDtos);

    /**
     * 插入或者更新
     */

    boolean insertOrUpdate(List<DeviceAppPublicFile> deviceAppPublicFile);

    /**
     * 批量根据缓存时间保存或者更新设备文件
     * if dataBase 不存在 该包名，以及类型的文件则保存
     * 存在
     * 则看是否操作等待更新的时间,更新时间标准以UploadAppFileTypeEnum 为准，为0则实时更新
     *
     * @param uploadAppFile
     * @return
     */
    Boolean bachCacheSaveFile(MqUplocadAppFile uploadAppFile,long uploadTime) throws IOException;

    /**
     * 筛选出缓存过期的文件
     *
     * @param deviceAppPublicFiles
     * @return
     */
    List<DeviceAppPublicFile> contrastCacheOverdueData(List<DeviceAppPublicFile> deviceAppPublicFiles);

}
